home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / rbbs_pc / ugly174.zip / RSB4UGLY.MRG < prev    next >
Text File  |  1992-07-05  |  37KB  |  901 lines

  1. * ------------[ BLED merge (c) Ken Goosens ]-------------
  2. * Merge this against RELEASE\RBBSSUB4.BAS to produce RBBSSUB4.BAS
  3. * RELEASE\RBBSSUB4.BAS:  Date 6-20-1992  Size 120885 bytes
  4. * ------------[ Created 07-04-1992 19:43:53 ]------------
  5. * REPLACING old line(s) by new
  6. 57010 IF ZAutoDownDesired THEN _
  7.          GOTO 57020
  8.       IF NOT ZAutoDownVerified THEN _
  9.          CALL TestUser
  10.       IF NOT ZAutoDownYes THEN _
  11. * ------[ first line different ]------
  12.          CALL QuickTPut1 ("Sorry, AutoDownloading isn't Available.") : _ ' UG070501
  13.          ZAutoDownDesired = ZTrue
  14. * REPLACING old line(s) by new
  15. 57040 IF ZEmphasizeOnDef$ = "" THEN _
  16. * ------[ first line different ]------
  17.         CALL QuickTPut1 ("Sorry, Highlighting isn't Available.") : _ ' UG070501
  18.         RETURN
  19.      IF NOT ZHiLiteOff THEN _
  20.         CALL QuickTPut (ZColorReset$,0)
  21.      CALL SetHiLite (NOT ZHiLiteOff)
  22.      GOSUB 57050
  23.      CALL UserColor
  24.      RETURN
  25. * REPLACING old line(s) by new
  26. 57130 ZOutTxt$ = MID$("Skip Check",1 -5 * ZCheckBulletLogon,5) + _
  27. * ------[ first line different ]------
  28.            " Old Bulletins at Logon"                                 ' UG070501
  29.       GOSUB 57135                                                    ' UG070501
  30.       CALL QuickTPut1 (ZOutTxt$)
  31.       RETURN
  32. * INSERTING new line(s)
  33. 57135 IF MID$(ZOutTxt$,5,1) = " " THEN _                             ' UG070501
  34.          ZOutTxt$ = LEFT$(ZOutTxt$,4) + MID$(ZOutTxt$,6)             ' UG070501
  35.       RETURN                                                         ' UG070501
  36. * REPLACING old line(s) by new
  37. * ------[ first line different ]------
  38. 57160 ZOutTxt$ = MID$("CheckSkip ",1 -5 * ZSkipFilesLogon,5) + _
  39.            " New Files at Logon"                                     ' UG070501
  40.       GOSUB 57135                                                    ' UG070501
  41.       CALL QuickTPut1 (ZOutTxt$)
  42.       RETURN
  43. * REPLACING old line(s) by new
  44. 57260 IF NOT ZUpperCase THEN _
  45.          IF (NOT ZHiLiteOff) OR ZUserGraphicDefault$ = "C" THEN _
  46. * ------[ first line different ]------
  47.             CALL QuickTPut1 ("Graphics & Hilite Must be Off to Use UpperCase.") : _ ' UG070501
  48.             RETURN
  49.       ZUpperCase = NOT ZUpperCase
  50. * REPLACING old line(s) by new
  51. 58200 ' $SUBTITLE: 'FMS - subroutine to search the upload management system'
  52. ' $PAGE
  53. '
  54. '  NAME    -- FMS
  55. '
  56. '  INPUTS  -- PARAMETER                      MEANING
  57. '             DirToSearch$          RBBS-PC "DIR" CATEGORY TO LOOK
  58. '                                     FOR
  59. '             SearchString$          STRING TO SEARCH FOR
  60. '             SearchDate$            DATE TO SEARCH FOR
  61. '             ZCategoryName$()
  62. '             ZCategoryCode$()
  63. '             ZCategoryDesc$()
  64. '             CatFound
  65. '             ZNumCategories
  66. '
  67. '  OUTPUTS -- ProcessedInFMS
  68. '             DnldFlag
  69. '
  70. '  PURPOSE -- To search the file management system and display the
  71. '             files being searched for as well as the catetory descriptions
  72. '
  73.       SUB FMS (DirToSearch$,SearchString$,SearchDate$, _
  74.                ProcessedInFMS,ZCategoryName$(1),ZCategoryCode$(1), _
  75.                ZCategoryDesc$(1),DnldFlag,CatFound,AbortIndex) STATIC
  76.       DnldFlag = 0
  77.       CALL SearchArray (DirToSearch$,ZCategoryName$(),ZNumCategories,CatFound)
  78.       ProcessedInFMS = ProcessedInFMS OR (CatFound > 0)
  79.       IF ProcessedInFMS THEN _
  80.          ZSubParm = 5 : _
  81.          GOSUB 58202 : _
  82. * ------[ first line different ]------
  83.          ZOutTxt$ = "Scanning Directory " + _                        ' UG070501
  84.               DirToSearch$ + _
  85.               SrchDir$ + _
  86.               " - " + _
  87.               ZCategoryDesc$(CatFound) : _
  88.          CALL TPut : _
  89.          Cat$ = ZCategoryCode$(CatFound) : _
  90.          CALL DispUpDir (Cat$,SearchString$,SearchDate$,DnldFlag,AbortIndex)
  91.       EXIT SUB
  92. * REPLACING old line(s) by new
  93. * ------[ first line different ]------
  94. 58304 IF ZRet THEN                                                   ' UG070509
  95.          IF ZFossil THEN                                             ' UG070509
  96.             CALL FosTxPurge(ZComPort)                                ' UG070509
  97.             CALL SkipLine (1)                                        ' UG070509
  98.             CALL QuickTPut (ZEmphasizeOff$,0)                        ' UG070509
  99.          END IF                                                      ' UG070509
  100.          EXIT SUB                                                    ' UG070509
  101.       END IF                                                         ' UG070509
  102.       IF ZLinesPrinted < ZFF THEN _
  103.          GOTO 58307
  104. * REPLACING old line(s) by new
  105. 58400 ' $SUBTITLE: 'BufFile - subroutine to write a sequential file to the user'
  106. ' $PAGE
  107. '
  108. '  NAME    -- BufFile
  109. '
  110. '  INPUTS  -- PARAMETER                      MEANING
  111. '             FileSpec$               NAME OF THE FILE TO WRITE TO
  112. '                                                OUT TO THE USER
  113. '
  114. '  OUTPUTS -- NONE                    FILE IS WRITTEN TO THE USER
  115. '
  116. '  PURPOSE -- To display a sequential file to the user
  117. '
  118.       SUB BufFile (FilName$,AbortIndex) STATIC
  119.       CALL FindIt (FilName$)
  120.       IF NOT ZOK THEN _
  121. * ------[ first line different ]------
  122.          GOTO 58420                                                  ' UG070501
  123.       ZNo = ZFalse
  124.       CALL OpenRSeq (FilName$,NumRecs,LenLastRec,ZBufferSize)
  125.       IF ZErrCode > 0 THEN _
  126.          GOTO 58419
  127.       DataSize = ZBufferSize
  128.       FIELD 2, DataSize AS SeqRec$
  129.       ZNonStop = ZNonStop OR (ZPageLength < 1)
  130.       ZJumpLast$ = ""
  131.       ZJumpSearching = ZFalse
  132.       ZJumpSupported = ZTrue
  133.       IF NOT ZStopInterrupts THEN _
  134.          IF NOT ZConcatFIles THEN _
  135.             IF NOT ZNonStop THEN _
  136.                ZOutTxt$ = "* Ctrl-K(^K) or ^X Aborts, ^S Pauses (^Q Resumes) *" : _ ' UG070501
  137.                ZSubParm = 5 : _                                      ' UG070501
  138.                CALL TPut
  139.       WasTU = 0
  140. * REPLACING old line(s) by new
  141. * ------[ first line different ]------
  142. 58419 CALL BufString ("",-1,AbortIndex)                              ' UG070501
  143.       CALL SkipLine (1)                                              ' UG070501
  144. * INSERTING new line(s)
  145. 58420 CLOSE 2                                                        ' UG070501
  146.       ZBypassTimeCheck = ZFalse
  147.       ZStopInterrupts = ZFalse
  148.       CALL QuickTPut (ZEmphasizeOff$,0)
  149.       ZJumpSupported = ZFalse
  150.       END SUB
  151. * REPLACING old line(s) by new
  152. 58900 ZOutTxt$ = ZDirPrompt$
  153.       ZMacroMin = 2
  154. * ------[ first line different ]------
  155.       CALL UglyPopCmdStack                                           ' UG070501
  156.       IF ZWasQ = 0 OR ZSubParm = -1 THEN _
  157.          EXIT SUB
  158.       CALL AraAllCaps (ZUserIn$(),ZAnsIndex)
  159.       IF ZUserIn$(ZAnsIndex) = "Q" THEN _
  160.          ZWasQ = 0 : _
  161.          EXIT SUB
  162.       ZWasA = INSTR("E+.E-.E.L.H.?.",ZUserIn$(ZAnsIndex)+".")
  163.       IF ZWasA = 0 THEN _
  164.          EXIT SUB
  165.       IF ZWasA > 8 THEN _
  166.          IF ZAnsIndex < ZLastIndex THEN _
  167.             GOTO 58900 _
  168.          ELSE GOTO 58902
  169.       IF ZWasA = 7 THEN _
  170.          ZExtendedOff = NOT ZExtendedOff _
  171.       ELSE ZExtendedOff = (ZWasA > 3)
  172.       CALL QuickTPut2 ("Extended Directory Display "+FNOffOn$(NOT ZExtendedOff)+".") ' UG070501
  173.       GOTO 58900
  174. * REPLACING old line(s) by new
  175. 59450 ' $SUBTITLE: 'UserFace - handles programmable user interface'
  176. ' $PAGE
  177. '
  178. '  NAME    --  UserFace
  179. '
  180. '  INPUTS  --  PARAMETER                   MEANING
  181. '              ZCurPUI$             PUI TO USE
  182. '              ZExpertUser          WHETHER CALL IN EXPERT MODE
  183. '
  184. '  OUTPUTS --  ZWasQ
  185. '              ZUserIn$()
  186. '              ZWasZ$
  187. '
  188. '  PURPOSE --  When sysop overrides RBBS-PC's default user
  189. '              interface (provides a MAIN.PUT), this routine
  190. '              reads in the table of specifications, presents
  191. '              the sysop menu, presents the prompt, verifies
  192. '              that a valid option has been picked, determines
  193. '              whether the option is another PUI, and passes
  194. '              back choices to be processed.
  195. '
  196.       SUB UserFace STATIC
  197. * ------[ first line different ]------
  198.       IF NOT ZExpertUser THEN _                                      ' UG070501
  199.          CALL SkipLine (1)                                           ' UG070501
  200. * REPLACING old line(s) by new
  201. * ------[ first line different ]------
  202. 59458 IF ZExpertUser OR ZAnsIndex < ZLastIndex THEN _                ' UG070501
  203.          GOTO 59461
  204. * REPLACING old line(s) by new
  205. 59461 MID$(ZLastCommand$,2,1) = " "
  206.       ZOutTxt$ = Prompt$
  207.       ZTurboKey = -ZTurboKeyUser
  208. * ------[ first line different ]------
  209.       CALL UglyPopCmdStack                                           ' UG070501
  210.       IF ZSubParm = -1 OR ZFunctionKey <> 0 THEN _
  211.          EXIT SUB
  212.       IF ZWasQ = 0 THEN _
  213.          GOTO 59458
  214. * REPLACING old line(s) by new
  215. 59470 MID$(ZLastCommand$,2,1) = ZWasZ$
  216.       ZOutTxt$ = QuitPrompt$
  217.       ZTurboKey = -ZTurboKeyUser
  218. * ------[ first line different ]------
  219.       CALL UglyPopCmdStack                                           ' UG070501
  220.       IF ZSubParm = -1 OR ZFunctionKey <> 0 THEN _
  221.          EXIT SUB
  222.       IF ZWasQ = 0 THEN _
  223.          ZUserIn$(1) = LEFT$(QuitSubCmds$,1) : _
  224.          ZWasQ = 1
  225. * REPLACING old line(s) by new
  226. * ------[ first line different ]------
  227. 59492 CALL QuickTPut2 ("Sorry, No Such Command: "+ZWasZ$) : _        ' UG070501
  228.       Call FlushKeys
  229.       GOTO 59460
  230.       END SUB
  231. * REPLACING old line(s) by new
  232. 59520 ZOutTxt$ = PassedPrompt$            'get response
  233. * ------[ first line different ]------
  234.       CALL UglyPopCmdStack                                           ' UG070501
  235.       IF ZWasQ = 0 OR ZSubParm = -1 THEN _
  236.          EXIT SUB
  237. * REPLACING old line(s) by new
  238. * ------[ first line different ]------
  239. 59547 CALL QuickTPut2 ("Sorry, Unknown Option: " + ZWasZ$)           ' UG070501
  240.       ZLastIndex = 0
  241.       IF VerifyInMenu AND InMenu AND NOT RequireInMenu THEN _
  242.          CALL UpdtCalr("Option " + ZWasZ$ + " on menu " + _
  243.                        CurMenu$ + " but not found",1)
  244.       RETURN
  245. * REPLACING old line(s) by new
  246. 59698 ' $SUBTITLE: 'MsgImport -- subroutine to import a message'
  247. ' $PAGE
  248. '
  249. '  NAME    -- MsgImport
  250. '
  251. '  INPUTS  --   PARAMETER     MEANING
  252. '               MaxLines     MAXIMUM # OF LINES
  253. '               MaxLen       MAXIMUM LENGTH OF A LINE
  254. '               NumLines     NUMBER OF LINES ALREADY IN MESSAGE
  255. '               LineAra$     ARRAY OF LINES IN MESSAGE
  256. '
  257. '  OUTPUTS --   NumLines
  258. '               LineAra$
  259. '
  260. '  PURPOSE -- Allows local user to append a text file to
  261. '             a message.   Will word wrap if needed.
  262. '
  263.       SUB MsgImport (MaxLines,MaxLen,NumLines,LineAra$(1)) STATIC
  264.       IF NOT (ZLocalUser OR ZSysop) THEN _
  265. * ------[ first line different ]------
  266.          CALL QuickTPut2 ("Sorry, Only for SysOps or Local Logons.") : _ ' UG070501
  267.          EXIT SUB                                                    ' UG070501
  268. * REPLACING old line(s) by new
  269. * ------[ first line different ]------
  270. 59700 ZOutTxt$ = "Import What Text File" + ZPressEnter$              ' UG070501
  271.       CALL UglyPopCmdStack                                           ' UG070501
  272.       IF ZSubParm = -1 OR ZWasQ = 0 THEN _
  273.          EXIT SUB
  274.       CALL FindIt (ZUserIn$(ZAnsIndex))
  275.       IF NOT ZOK THEN _
  276.          CALL QuickTPut2 (ZUserIn$(ZAnsIndex) + " Not Found.") : _   ' UG070501
  277.          GOTO 59700
  278.       WHILE NOT EOF(2) AND NumLines < MaxLines
  279.          NumLines = NumLines + 1
  280.          LINE INPUT #2,LineAra$(NumLines)
  281.       WEND
  282.       CLOSE 2
  283.       CALL WordWrap (MaxLen,NumLines,LineAra$())
  284.       END SUB
  285. * REPLACING old line(s) by new
  286. 59780 ' $SUBTITLE: 'GetAll -- subroutine to create directory list'
  287. ' $PAGE
  288. '
  289. '  NAME    -- GetAll
  290. '
  291. '  INPUTS  --   PARAMETER     MEANING
  292. '               LookIn$       NAME OF FILE TO SEARCH
  293. '               DIR.EXT$      MAIN DIRECTORY EXTENSION TO USE
  294. '               StartPos      Last POSITION USED IN ARRAY
  295. '
  296. '  OUTPUTS      StartPos     Last ELEMENT USED IN ARRAY
  297. '               LoadInto$    ARRAY TO LOAD ELEMENTS Found
  298. '
  299. '  PURPOSE -- Creates a list (LoadInto$) of all directories
  300. '             to be listed when ZWasA)ll is selected for a directory.
  301. '             All uses config parm, which can be either a single
  302. '             directory or list of directories (begin with "@").
  303. '
  304.       SUB GetAll (LoadInto$(1), StartPos) STATIC
  305.       IF ZMasterDirName$ <> "" AND LEFT$(ZMasterDirName$,1) <> "@" THEN _
  306.          StartPos = StartPos + 1 : _
  307.          LoadInto$(StartPos) = ZMasterDirName$ : _
  308.          EXIT SUB
  309.       ZOK = ZFalse
  310.       IF LEN (ZMasterDirName$) > 1 AND LEFT$(ZMasterDirName$,1) = "@" THEN _
  311.          CALL FindIt(MID$(ZMasterDirName$,2))
  312.       IF NOT ZOK THEN _
  313. * ------[ first line different ]------
  314.          CALL QuickTPut2 ("No Directories Defined for A)ll.  Please Tell SysOp.") : _ ' UG070501
  315.          EXIT SUB
  316.       MaxLoad = UBOUND(LoadInto$, 1)
  317.       StartSort = StartPos + 1
  318.       WHILE NOT EOF(2) AND StartPos < MaxLoad
  319.          LINE INPUT #2, ZOutTxt$
  320.          StartPos = StartPos + 1
  321.          LoadInto$(StartPos) = ZOutTxt$
  322.       WEND
  323.       CLOSE 2
  324.       END SUB
  325. * REPLACING old line(s) by new
  326. 59850 ' $SUBTITLE: 'ConfMail -- quickly checks mail waiting'
  327. ' $PAGE
  328. '
  329. '  NAME    -- ConfMail
  330. '
  331. '  INPUTS  -- PARAMETER        MEANING
  332. '         SKIP.CONFIRM         Whether to skip confirm of option
  333. '         ZConfMailList$       File of user/message pairs to check
  334. '         ZActiveUserFile$     Active user file (restored on exit)
  335. '         ZActiveMessageFile$  Active msg file (restored)
  336. '  OUTPUTS -- None
  337. '
  338. '  PURPOSE -- Quicking scans message header record to get
  339. '             last msg # and user record to get whether any
  340. '             new mail and last msg read, reports both, using
  341. '             highlighting if new mail to caller.
  342. '
  343.       SUB ConfMail (MailCheckConfirm,LinkNew,LinkPers) STATIC
  344.       SkipJoinUnjoin = ZNonStop OR LinkNew OR LinkPers
  345.       IF ZStartHash = 1 AND ZUserFileIndex > 0 THEN _
  346.          CALL FindIt (ZConfMailList$) _
  347.       ELSE ZOK = ZFalse
  348.       IF NOT ZOK THEN _
  349.          EXIT SUB
  350.       IF PrevMailList$ <> ZConfMailList$ THEN _
  351.          SkipParms = 0
  352.       PrevMailList$ = ZConfMailList$
  353.       IF MailCheckConfirm THEN _
  354. * ------[ first line different ]------
  355.          ZOutTxt$ = "Check Conferences for Mail/Uploads ([Y],N)" : _ ' UG070501
  356.          ZTurboKey = -ZTurboKeyUser : _                              ' UG070501
  357.          CALL UglyPopCmdStack : _                                    ' UG070501
  358.          IF ZNo OR ZSubParm < 0 THEN _
  359.             EXIT SUB
  360.       CALL BreakFileName (ZActiveUserFile$,WasX$,NowInPre$,NowInExt$,ZFalse)
  361.       CALL BreakFileName (ZOrigUserFile$,WasX$,OrigPre$,OrigExt$,ZFalse)
  362. '     CALL SkipLine (1)                                              ' UG070501
  363.       CALL QuickTPut1 ("Checking Message Bases (* = linked):")       ' UG070501
  364.       IF LinkNew OR LinkPers THEN _
  365.          ZLinkedConf$ = ""
  366.       AnyMail = ZFalse
  367.       ZStopInterrupts = ZFalse
  368.       WasA1$ = ZActiveUserFile$
  369.       MsgFileSave$ = ZActiveMessageFile$
  370.       TempIndivValue$ = ""
  371.       UserFileIndexSave = ZUserFileIndex
  372.       UserRecordHold$ = ZUserRecord$
  373.       ZOK = ZTrue
  374.       CALL ReadParms (ZWorkAra$(),1,SkipParms)
  375.       IF SkipParms = 0 THEN _
  376.          LogicalEOF$ = "" _
  377.       ELSE LogicalEOF$ = ZWorkAra$(1)
  378. * REPLACING old line(s) by new
  379. 59852    IF InCur THEN _
  380.             FileWait = ZFileWaiting : _
  381.             WasX = ZMailWaiting : _
  382.             ZWasA = ZLastMsgRead _
  383.          ELSE ZWasA = CVI(MID$(ZUserRecord$,51,2))
  384.          ZWasB = VAL(LEFT$(ZMsgRec$,8))
  385.          WasZ = (ZWasB - ZWasA)
  386.          IF WasZ < 0 THEN _
  387.             ZWasA = 0 : _
  388.             WasZ = ZWasB _
  389.          ELSE IF WasZ = 0 THEN _
  390.                  WasX = ZFalse
  391.          ZWasSL = LEN(CurPre$)
  392.          IF CurPre$ = "USERS" AND CurExt$ = "" THEN _
  393.             Conf$ = "MAIN" _
  394.          ELSE Conf$ = LEFT$(CurPre$,ZWasSL-1)
  395.          ZOutTxt$ = MID$(STR$((ZWasB > ZWasA) * WasZ),2)
  396.          Temp = LEN(ZOutTxt$)
  397.          ZOutTxt$ = SPACE$(-(Temp<4) * (4-Temp)) + ZOutTxt$
  398.          IF (WasZ > 0 AND LinkNew) OR (WasX AND LinkPers) THEN _
  399.             IF (NOT InCur) THEN _
  400.                CALL AddLink (Conf$)
  401.          Temp = (INSTR(ZCarriageReturn$ + ZLinkedConf$,ZCarriageReturn$ + Conf$ + ZCarriageReturn$) > 0)
  402.          ZWasY$ = MID$(" *",1-Temp,1) + Conf$ + SPACE$(-(ZWasSL<8) * (8-ZWasSL))
  403.          IF WasX THEN _
  404. * ------[ first line different ]------
  405.             WasX$ = ZEmphasizeOn$ + "Some Msgs to You" + ZEmphasizeOff$ _ ' UG070501
  406.          ELSE WasX$ = "                "
  407.          IF FileWait THEN _
  408.             Temp$ = "  - " + ZEmphasizeOn$ + "Some Files to You" + ZEmphasizeOff$ _ ' UG070501
  409.          ELSE Temp$ = ""                                             ' UG070501
  410.          ZOutTxt$ = ZWasY$ + ": " + ZOutTxt$ + " New Messages " + _  ' UG070501
  411.               WasX$ + Temp$
  412.          ZSubParm = 5
  413.          CALL TPut
  414.          ZJumpSupported = ZFalse
  415.          IF SkipJoinUnjoin THEN _
  416.             CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue) : _
  417.             GOTO 59853
  418.          ZTurboKey = -ZTurboKeyUser
  419.          CALL AskMore (",J)oin,U)njoin,L)ink,D)elink",ZTrue,ZFalse,WasX,ZFalse)
  420.          IF ZNo THEN _
  421.             GOTO 59856
  422.          WasX$ = LEFT$(ZUserIn$(1),1)
  423.          CALL AllCaps (WasX$)
  424.          IF WasX$ = "J" THEN _
  425.             ZLastIndex = ZWasQ : _
  426.             ZHomeConf$ = Conf$ : _
  427.             GOTO 59856
  428.          IF WasX$ = "D" THEN _
  429.             CALL DeLink (Conf$) : _
  430.             GOTO 59852
  431.          IF WasX$ = "L" THEN _
  432.             CALL AddLink (Conf$) : _
  433.             GOTO 59852
  434.          IF WasX$ = "U" THEN _
  435.             IF InCur OR (OrigPre$ = CurPre$ AND OrigExt$ = CurExt$) THEN _
  436.                CALL QuickTPut1 ("Sorry, You Can't Unjoin the Current Board or Conference.") _ ' UG070501
  437.             ELSE LSET ZUserRecord$ = CHR$(0) + "deleted user" : _
  438.                  ZUserFileIndex = HoldUserFileIndex : _
  439.                  ZSubParm = 6 : _
  440.                  CALL FileLock : _
  441.                  PUT 5, HoldUserFileIndex : _
  442.                  ZSubParm = 8 : _
  443.                  CALL FileLock : _
  444.                  CALL QuickTPut1 ("Removed You from the " + Conf$ + " Conference.") ' UG070501
  445. * REPLACING old line(s) by new
  446. 59856 ZActiveUserFile$ = WasA1$
  447.       CALL OpenUser (ZHighestUserRecord)
  448.       FIELD 5, 128 AS ZUserRecord$
  449.       IF (NOT ZRet) AND NOT AnyMail THEN _
  450. * ------[ first line different ]------
  451.          CALL QuickTPut1 ("You Haven't Joined Any Conferences.")     ' UG070501
  452.       CALL SkipLine (1)                                              ' UG070501
  453.       ZUserFileIndex = UserFileIndexSave
  454.       LSET ZUserRecord$ = UserRecordHold$
  455.       ZActiveMessageFile$ = MsgFileSave$
  456.       CALL OpenMsg
  457.       FIELD 1, 128 AS ZMsgRec$
  458.       GET 1,1
  459.       ZNonStop = (ZPageLength < 1)
  460.       WasX$ = ZUserIn$(ZAnsIndex+1)
  461.       CALL AllCaps (WasX$)
  462.       ZAnsIndex = ZAnsIndex - (WasX$ = "C")
  463.       SkipParms = -(NOT EOF(2))*SkipParms
  464.       LinkNew = ZFalse
  465.       LinkPers = ZFalse
  466.       END SUB
  467. * REPLACING old line(s) by new
  468. 59860 CALL QuickTPut (ZEmphasizeOff$,0)
  469.       IF CantInterrupt THEN _
  470.          ZTurboKey = 2 : _
  471.          ZForceKeyboard = ZTrue : _
  472. * ------[ first line different ]------
  473.          ZOutTxt$ = "Press a Key to Continue" _                      ' UG070501
  474.       ELSE GOSUB 59870 : _
  475.            ZOutTxt$ = ZMorePrompt$ + Temp$ + ExtraPrompt$ + LEFT$(">",-ZExpertUser)
  476.       WasX = LEN(ZOutTxt$) + 2
  477.       ZNoAdvance = OverWrite
  478.       ZSubParm = 1
  479.       IF ExtraPrompt$ = "" AND ZTurboKey = 0 THEN _
  480.          ZTurboKey = -ZTurboKeyUser
  481.       ZMacroMin = 2
  482.       CALL TGet
  483.       IF ZSubParm = -1 THEN _
  484.         EXIT SUB
  485.       ZTurboKey = ZFalse
  486.       ZWasDF$ = ZUserIn$ (1)
  487.       CALL AllCaps (ZWasDF$)
  488.       WasI = INSTR(";C;A;",";"+ZWasDF$+";")
  489.       IF WasI = 1 THEN _
  490.          ZNonStop = ZTrue : _
  491.          ZWasQ = 0
  492.       CALL WipeLine (WasX + LEN(ZUserIn$))
  493.       IF NOT ZHiLiteOff THEN _
  494.          CALL QuickTPut (ZLastSmartColor$,0)
  495.       IF CantInterrupt THEN _
  496.          ZNo = ZFalse : _
  497.          EXIT SUB
  498.       IF WasI = 3 THEN _
  499.          ZLastIndex = 0 : _
  500.          AbortIndex = 32000
  501.       IF ZNo THEN _
  502.          ZKeyboardStack$ = "" : _
  503.          ZCommPortStack$ = "" : _
  504.          ZLastSmartColor$ = ""
  505.       IF NOT ZJumpSupported THEN _
  506.          EXIT SUB
  507.       IF ZWasDF$ = "J" THEN _
  508.          IF ZWasQ > 1 THEN _
  509.             ZUserIn$ = ZUserIn$(2) : _
  510.             GOTO 59866 _
  511.          ELSE ZOutTxt$ = "Find What String" + ZPressEnterExpert$ : _ ' UG070501
  512.               CALL PopCmdStack : _
  513.               IF ZWasQ = 0 THEN _
  514.                  EXIT SUB _
  515.               ELSE GOTO 59866
  516.       IF ZWasDF$ <> "R" THEN _
  517.          EXIT SUB
  518.       ZUserIn$ = ZJumpLast$
  519. * REPLACING old line(s) by new
  520. 59970 CALL QuickTPut (ZEmphasizeOff$,0)
  521.       ZOutTxt$ = "Make text R)ed,G)reen,Y)ellow,B)lue,P)urple,C)yan,W)hite" + ZPressEnterExpert$
  522.       GOSUB 59973
  523.       IF ZWasQ = 0 THEN _
  524.          ZEmphasizeOff$ = ZEscape$ + "[" + ZBoldText$ + _
  525.              ";40;" + MID$(STR$(ZUserTextColor),2) + "m" : _
  526.          EXIT SUB
  527.       CALL AllCaps (ZUserIn$)
  528.       WasX = INSTR("RGYBPCW",ZUserIn$)
  529.       IF WasX = 0 THEN _
  530.          GOTO 59970
  531.       ZUserTextColor = 30 + WasX
  532. * ------[ first line different ]------
  533.       ZOutTxt$ = "Make the Text Bright (Y,[N])"                      ' UG070501
  534.       GOSUB 59973
  535.       ZBoldText$ = CHR$(48 - ZYes)
  536.       ZEmphasizeOff$ = ZEscape$ + "[" + ZBoldText$ + ";40;" + MID$(STR$(ZUserTextColor),2) + "m"
  537.       GOTO 59970
  538. * REPLACING old line(s) by new
  539. 60180 ' $SUBTITLE: 'TimeLock - Test TIME LOCK for premium features'
  540. ' $PAGE
  541. '
  542. '  NAME    --  TimeLock  (written by Doug Azzarito)
  543. '
  544. '  INPUTS  --  PARAMETER                   MEANING
  545. '              ZTimeLockSet               SECONDS/SESSION TO LOCK
  546. '
  547. '  OUTPUTS --  ZSubParm     -1 if feature is LOCKED
  548. '
  549. '  PURPOSE -- Check elapsed time for lock duration
  550. '
  551.       SUB TimeLock STATIC
  552.       CALL TimeRemain(MinsRemaining)
  553.       IF ZSecsUsedSession! >= ZTimeLockSet THEN _
  554.          ZOK = ZTrue : _
  555.          EXIT SUB
  556. * ------[ first line different ]------
  557. '     ZOutTxt$ = ZFirstName$                                         ' UG070501
  558. '     CALL NameCaps(ZOutTxt$)                                        ' UG070501
  559.       CALL QuickTPut2 ("Sorry, Command is Unavailable for" + _
  560.                    STR$(INT((ZTimeLockSet-ZSecsUsedSession!)/60)) + _
  561.                    " Minutes," + _
  562.                    STR$(INT(ZTimeLockSet-ZSecsUsedSession!) MOD 60) + _        ")
  563.                    " Seconds More.")                                 ' UG070501
  564.       CALL BufFile(ZHelpPath$+"TIMELOCK"+ZHelpExtension$,WasX)
  565.       ZOK = ZFalse
  566.       ZLastIndex = 0
  567.       END SUB
  568. * REPLACING old line(s) by new
  569. 60300 ' $SUBTITLE: 'AutoPage - NOTIFIES ZSysop WHEN SPECIFIC USER CALLS'
  570. ' $PAGE
  571. '
  572. '  NAME    --  AutoPage   'Contributed  by Gregg and Bob Snyder
  573. '                        'and RoseMarie Siddiqui
  574. '
  575. '  INPUTS  --  ZAutoPageDef$  List of conditions that trigger
  576. '                                       notification and how
  577. '
  578. '  OUTPUTS -- NONE
  579. '
  580. '  PURPOSE -- Search ZAutoPageDef$ for match on whether
  581. '             on name, security level, whether new user.
  582. '             Also controls whether caller notified and
  583. '             number of times sysop has bell rung.
  584. '             And what tune to play (if any).
  585. '
  586.       SUB AutoPage STATIC
  587.       CALL FindIt (ZAutoPageDef$)
  588.       IF NOT ZOK THEN _
  589.          EXIT SUB
  590.       ZErrCode = 0
  591.       ZOK = ZFalse
  592.       WHILE NOT EOF(2) AND ZOK = ZFalse AND ZErrCode = 0
  593.          CALL ReadParms (ZWorkAra$(),4,1)
  594.          IF ZErrCode = 0 THEN _
  595.             ZOK = (ZWorkAra$(1) = ZActiveUserName$) : _
  596.             IF NOT ZOK THEN _
  597.                IF ZNewUser AND ZWorkAra$(1) = "NEWUSER" THEN _
  598.                   ZOK = ZTrue _
  599.                ELSE IF LEFT$(ZWorkAra$(1),1) = "/" AND LEN(ZWorkAra$(1)) > 2 THEN _
  600.                        ZWasB = INSTR (2,ZWorkAra$(1),"/") : _
  601.                        IF ZWasB > 0 AND LEN(ZWorkAra$(1)) > ZWasB THEN _
  602.                           IF ZUserSecLevel <= VAL(MID$(ZWorkAra$(1),ZWasB+1)) AND _
  603.                              ZUserSecLevel >= VAL(MID$(ZWorkAra$(1),2)) THEN _
  604.                                 ZOK = ZTrue
  605.       WEND
  606.       CLOSE 2
  607.       IF ZErrCode > 0 OR NOT ZOK THEN _
  608.          ZErrCode = 0 : _
  609.          EXIT SUB
  610.       ZPageStatus$ = "AP!"
  611.       IF LEFT$(ZWorkAra$(2),1) = "N" THEN _
  612. * ------[ first line different ]------
  613.          ZOutTxt$ = "Wait... Telling SysOp You're Online." : _       ' UG070501
  614.          CALL RingCaller : _
  615.          CALL SkipLine (1)                                           ' UG070501
  616.       ZWasB = (ZWorkAra$(4) = "")
  617.       ZWorkAra$(5) = ""
  618.      TempSnoop = ZSnoop
  619.      ZSnoop = ZTrue
  620.      CALL Line25
  621.       FOR WasI = 1 TO VAL(ZWorkAra$(3))
  622.          IF ZWasB THEN _
  623.             CALL LPrnt (ZBellRinger$,0) : _
  624.          ELSE ZWorkAra$(5) = ZWorkAra$(5) + "O4 X" + VARPTR$(ZWorkAra$(4))
  625.       NEXT
  626.       IF NOT ZWasB THEN _
  627.          CALL RBBSPlay (ZWorkAra$(5))
  628.       ZSnoop = TempSnoop
  629.       END SUB
  630. * REPLACING old line(s) by new
  631. 62540 ' $SUBTITLE: 'RptTime -- Reports time on system'
  632. ' $PAGE
  633. '
  634. '  NAME    --  RptTime
  635. '
  636. '  INPUTS  --  PARAMETER                   MEANING
  637. '
  638. '  OUTPUTS --
  639. '
  640. '  PURPOSE --  Tells user time used on system
  641. '
  642.       SUB RptTime STATIC
  643. * ------[ first line different ]------
  644. '     CALL SkipLine (1)
  645.       CALL GetTime
  646.       CALL AMorPM
  647.       Mins = (ZSessionHour * 60) + ZSessionMin
  648.       CALL Carrier
  649.       IF ZSubParm = -1 THEN _
  650.          EXIT SUB
  651.       CALL QuickTPut1 ("It's Now: " + DATE$ + " at " + TIME$)        ' UG070501
  652.       CALL QuickTPut1 ("Time On:" + STR$(Mins) + " Minutes," + _
  653.                         STR$(ZSessionSec) + " Seconds")              ' UG070501
  654.       CALL Talk (7,ZOutTxt$)
  655.       END SUB
  656. * REPLACING old line(s) by new
  657. 62600 ' $SUBTITLE: 'Protocol - Determine protocols available'
  658. ' $PAGE
  659. '
  660. '  NAME    -- Protocol
  661. '
  662. '  INPUTS  --     PARAMETER                    MEANING
  663. '                 ZProtoDef$                File of installed protocols
  664. '
  665. '  OUTPUTS -- ZTransferOption$         Prompt for protocol choice
  666. '             ZDefaultXfer$            Letters of protocols
  667. '             ZInternalEquiv$          Internal protocol to use
  668. '
  669. '  PURPOSE -- TO determine what protocols are available to user
  670. '
  671.       SUB Protocol STATIC
  672.       CALL FindIt (ZProtoDef$)
  673.       IF NOT ZOK THEN _
  674. * ------[ first line different ]------
  675.          ZTransferOption$ = "A)scii,X)modem,C)RCXmodem,Y)modem" : _  ' UG070501
  676.          ZInternalEquiv$ = "AXCY" : _
  677.          ZDefaultXfer$ = "AXCY" : _
  678.          GOTO 62604
  679.       ZDefaultXfer$ = ""
  680.       ZInternalEquiv$ = ""
  681.       ZTransferOption$ = ""
  682.       WasL = 0
  683. * REPLACING old line(s) by new
  684. 62605 IF LEFT$(ZTransferOption$,1) = "," THEN _
  685.          ZTransferOption$ = MID$(ZTransferOption$,2)
  686.       IF INSTR(ZDefaultXfer$,ZUserXferDefault$) = 0 THEN _
  687. * ------[ first line different ]------
  688.          CALL QuickTPut2 ("Protocol "+ZUserXferDefault$+" Unavailable.  Default Reset to None.") : _ ' UG070501
  689.          ZUserXferDefault$ = MID$(ZDefaultXfer$,INSTR(ZInternalEquiv$,"N"),1)
  690.       END SUB
  691. * REPLACING old line(s) by new
  692. 62620 ' $SUBTITLE: 'Transfer - Subroutine for external protocols'
  693. ' $PAGE
  694. '
  695. '  NAME    -- Transfer
  696. '
  697. '  INPUTS  --     PARAMETER                    MEANING
  698. '              ZTransferFunction         = 1 DOWNLOAD FILE TO USER
  699. '                                        = 2 UPLOAD FILE TO RBBS-PC
  700. '              ZFileName$                NAME OF FILE FOR Transfer
  701. '              ZComPort$                 NAME OF COMMUNICATIONS PORT
  702. '                                        TO BE USED BY KERMIT (COM1
  703. '                                        OR COM2)
  704. '              ZBPS                      = -1 FOR   300 BAUD
  705. '                                        = -2 FOR   450 BAUD
  706. '                                        = -3 FOR  1200 BAUD
  707. '                                        = -4 FOR  2400 BAUD
  708. '                                        = -5 FOR  4800 BAUD
  709. '                                        = -6 FOR  9600 BAUD
  710. '                                        = -7 FOR 19200 BAUD
  711. '
  712. '  OUTPUTS  -- NONE
  713. '
  714. '  PURPOSE -- To transfer files using external protocols
  715. '
  716.       SUB Transfer STATIC
  717.       IF ZPrivateDoor THEN _
  718.          CALL PrivDoorRtn : _
  719.          EXIT SUB
  720.       IF ZTransferFunction = 1 THEN _
  721.          ZUserIn$ = ZDownTemplate$ : _
  722. * ------[ first line different ]------
  723.          ZWasZ$ = "Send " _
  724.       ELSE IF ZTransferFunction = 2 THEN _
  725.               ZUserIn$ = ZUpTemplate$ : _
  726.               ZWasZ$ = "Receive "                                    ' UG070501
  727.       CALL MetaGSR (ZUserIn$,ZFalse)                                 ' UG070501
  728.       CALL QuickTPut2 ("Protocol     : "+ZProtoPrompt$)              ' UG070501
  729.       CALL QuickTPut ("Ready to " + ZWasZ$,0)                        ' UG070501
  730.       IF ZBatchTransfer THEN _
  731.          CALL QuickTPut1 ("(BATCH)") : _
  732.          CALL OpenWork (2,ZNodeWorkFile$) : _
  733.          WHILE NOT EOF(2) : _
  734.            CALL ReadAny : _
  735.            CALL BreakFileName (ZOutTxt$,ZWasZ$,ZWasY$,WasX$,ZTrue) : _
  736.            CALL QuickTPut1 ("   "+ZWasY$+WasX$) : _
  737.          WEND _
  738.       ELSE CALL QuickTPut1 (ZFileNameHold$)
  739.       CALL PrivDoorRtn
  740.       END SUB
  741. * REPLACING old line(s) by new
  742. 62628 WasX$ = LEFT$(ZUserIn$,INSTR(ZUserIn$+" "," ")-1)
  743.       IF WasX$ = "" THEN _
  744.          EXIT SUB
  745.       CALL FindIt (WasX$)
  746.       IF NOT ZOK THEN _
  747.          ZOutTxt$ = "Missing door program" : _
  748.          CALL UpdtCalr (ZOutTxt$ + " " + WasX$,1) : _
  749.          ZSnoop = ZTrue : _
  750.          CALL LPrnt (ZOutTxt$,1) : _
  751.          EXIT SUB
  752. * ------[ first line different ]------
  753.       ZOutTxt$(1) = ""                                               ' UG070507
  754.       GOSUB 62633
  755.       ZOutTxt$(2) = "ECHO" + ZOutTxt$
  756.       ZOutTxt$(3) = ZDiskForDos$ + _
  757.               "COMMAND /C " + _
  758.               ZUserIn$
  759.       ZOutTxt$(4) = ZRBBSBat$
  760.       ZPrivateDoor = ZTrue
  761.       CALL SkipLine (1)                                              ' UG070501
  762.       CALL QuickTPut1 ("Exiting BBS to Run External Protocol...")    ' UG070501
  763.       LOCATE 25,1
  764.       CALL LPrnt(ZLineFeed$,0)
  765.       CALL DoorInfo
  766.       CALL RBBSExit (ZOutTxt$(),4)
  767. * REPLACING old line(s) by new
  768. 62629 GOSUB 62633
  769. * ------[ first line different ]------
  770. '     CLS                                                            ' UG070507
  771.       CALL LPrnt (ZOutTxt$,2)                                        ' UG070507
  772.       CALL ShellExit (ZUserIn$)
  773. * REPLACING old line(s) by new
  774. 62630 IF ZPrivateDoor THEN _
  775.          CALL RestoreCom : _
  776.          CALL DelayTime (7 + ZBPS) : _
  777.          CALL SetBaud : _
  778. * ------[ first line different ]------
  779.          CALL QuickTPut1 ("Reloading the BBS.  Please Wait...")      ' UG070501
  780. * REPLACING old line(s) by new
  781. * ------[ first line different ]------
  782. 62631 ' CALL SkipLine (2)                                            ' UG070501
  783.       LOCATE 24,1
  784. * REPLACING old line(s) by new
  785. 62670 ZOutTxt$ = Prompt$
  786.       ZMacroMin = 99
  787.       ZHidden = ZTrue
  788.       CALL PopCmdStack
  789.       ZHidden = ZFalse
  790.       IF ZSubParm < 0 OR ZWasQ = 0 THEN _
  791.          EXIT SUB
  792. * ------[ first line different ]------
  793.       ZOutTxt$ = ""                                                  ' UG070508
  794.       IF LEN(ZUserIn$) > 15 THEN _
  795.          ZOutTxt$ = "15 Chars Max."                                  ' UG070508
  796.       IF INSTR(ZUserIn$,";") > 0 THEN _
  797.          ZOutTxt$ = "Sorry, Password Can't Contain a Semicolon."     ' UG070508
  798.       IF DisallowSpaces THEN _
  799.          IF ZUserIn$ = SPACE$(LEN(ZUserIn$)) THEN _
  800.             ZOutTxt$ = "Sorry, But All Blanks Not Allowed."          ' UG070508
  801.       IF ZOutTxt$ <> "" THEN _                                       ' UG070508
  802.          CALL SkipLine (1) : _                                       ' UG070508
  803.          CALL QuickTPut2 (ZOutTxt$) : _                              ' UG070508
  804.          GOTO 62670                                                  ' UG070508
  805.       CALL AllCaps (ZUserIn$)
  806.       ZWasZ$ = ZUserIn$
  807.       END SUB
  808. * REPLACING old line(s) by new
  809. 64005 ZChatAvail = ZFalse
  810.       QestChain = ZFalse
  811.       LastQues = 0
  812.       CALL Graphic (ZFileName$)
  813.       IF NOT ZOK THEN _
  814.          EXIT SUB
  815.       CALL ReadParms (ZOutTxt$(),2,1)
  816.       IF ZErrCode > 0 THEN _
  817.          EXIT SUB
  818.       PrevAppend$ = AppendFileName$
  819.       AppendFileName$ = ZOutTxt$(1)
  820.       MaxSecLevel = VAL(ZOutTxt$(2))
  821.       WasX = INSTR(ZOutTxt$(2)," ")
  822.       IF WasX > 0 THEN _
  823.          IF ZUserSecLevel < VAL(MID$(ZOutTxt$(2),WasX)) THEN _
  824. * ------[ first line different ]------
  825.             CALL QuickTPut2 ("Sorry, Insufficient Security Level.") : _ ' UG070501
  826.             EXIT SUB
  827. '
  828. '
  829. ' *  THE First RECORD OF THE SCRIPT FILE CONTAINS THREE PARAMETERS:
  830. ' *   1.  THE NAME OF THE FILE TO APPEND THE ANSWERS TO.
  831. ' *   2.  THE MAXIMUM SECURITY LEVEL THE + COMMAND CAN RAISE A USER SECURITY
  832. ' *   3.  THE MINIMUM SECURITY TO USE THIS QUESTIONNAIRE
  833. ' * e.g. 'C:XXX.DAT,6 5' writes answers to C:XXX.DAT, can raise to 6,
  834. ' *      and requires security 5 or more to access
  835.       ScriptIndex = 1
  836.       ZOutTxt$(ScriptIndex) = ZActiveUserName$ + _
  837.                          " " + _
  838.                          DATE$ + _
  839.                          " " + _
  840.                          TIME$
  841. * REPLACING old line(s) by new
  842. 64636 IF ZAnsIndex < ZLastIndex THEN _
  843.          GOTO 64638
  844.       ZOutTxt$ = "A)utodwnld   B)ullet  C)ase     F)ile   H)ilite"
  845.       CALL TopPrompt
  846.       ZOutTxt$ = "L)ine feeds  N)ulls   T)urboKey X)pert  !)bell"
  847. * ------[ first line different ]------
  848.       CALL TopPrompt                                                 ' UG070501
  849.       ZOutTxt$ = "Toggle Which Options On/Off" + ZPressEnter$        ' UG070501
  850. * REPLACING old line(s) by new
  851. 64638 ZStackC = ZTrue
  852.       ZTurboKey = -ZTurboKeyUser
  853. * ------[ first line different ]------
  854.       CALL UglyPopCmdStack                                           ' UG070501
  855.       IF ZWasQ=0 OR ZSubParm < 0 THEN _
  856.          EXIT SUB
  857.       ZWasZ$ = ZUserIn$(ZAnsIndex)
  858.       CALL AllCaps (ZWasZ$)
  859.       ZFF = INSTR("ABCFHLNTX!",ZWasZ$)
  860.       IF ZFF < 1 THEN _
  861.          GOTO 64636
  862.       CALL Toggle (ZFF)
  863.       IF ZAnsIndex >= ZLastIndex THEN _                              ' UG070501
  864.          CALL SkipLine (1)                                           ' UG070501
  865.       GOTO 64636
  866.       END SUB
  867.       SUB TopPrompt STATIC
  868.       CALL ColorPrompt (ZOutTxt$)
  869.       CALL QuickTPut1 (ZOutTxt$)
  870.       END SUB
  871. * REPLACING old line(s) by new
  872. 64640 ' * SysOp function 5 - change xfer stats
  873.       SUB CmndSysOpXfer STATIC
  874. * ------[ first line different ]------
  875.       CALL QuickTPut1 (ZPressEnterNovice$)                           ' UG070501
  876.       ZOutTxt$ = "Upload File Total"                                 ' UG070501
  877.       GOSUB 64642
  878.       IF LEN(ZUserIn$(1)) > 0 THEN _
  879.          LSET ZUserUplds$ = MKI$(VAL(ZUserIn$(1)))
  880.       ZOutTxt$ = "Upload Byte Total"                                 ' UG070501
  881.       GOSUB 64642
  882.       IF LEN(ZUserIn$(1)) > 0 THEN _
  883.          LSET ZULBytes$ = MKS$(VAL(ZUserIn$(1)))
  884.       ZOutTxt$ = "Download File Total"                               ' UG070501
  885.       GOSUB 64642
  886.       IF LEN(ZUserIn$(1)) > 0 THEN _
  887.          LSET ZUserDnlds$ = MKI$(VAL(ZUserIn$(1)))
  888.       ZOutTxt$ = "Download Byte Total"                               ' UG070501
  889.       GOSUB 64642
  890.       IF LEN(ZUserIn$(1)) > 0 THEN _
  891.          LSET ZDlBytes$ = MKS$(VAL(ZUserIn$(1)))
  892.       ZOutTxt$ = "Files Downloaded Today"                            ' UG070501
  893.       GOSUB 64642
  894.       IF LEN(ZUserIn$(1)) > 0 THEN _
  895.          LSET ZTodayDl$ = MKS$(VAL(ZUserIn$(1)))
  896.       ZOutTxt$ = "Bytes Downloaded Today"                            ' UG070501
  897.       GOSUB 64642
  898.       IF LEN(ZUserIn$(1)) > 0 THEN _
  899.          LSET ZTodayBytes$ = MKS$(VAL(ZUserIn$(1)))
  900.       EXIT SUB
  901.